#include <cstdio>
#include <map>
using namespace std;

typedef unsigned long long long_int;
long_int N;
map<long_int, long_int> M;
long_int MAGIC_NUM = 12;

long_int cal(long_int x) {
    if(M.count(x)) {
        return M[x];
    }
    long_int x1 = x / 2, x2 = x / 3, x3 = x / 4;
    long_int y1 = x1, y2 = x2, y3 = x3;
    if(x1 >= MAGIC_NUM) {
        y1 = cal(x1);
    }
    if(x2 >= MAGIC_NUM) {
        y2 = cal(x2);
    }
    if(x3 >= MAGIC_NUM) {
        y3 = cal(x3);
    }
    if(y1 + y2 + y3 > x) {
        M.insert(pair<long_int, long_int>(x, y1 + y2 + y3));
        return y1 + y2 + y3;
    }
    M.insert(pair<long_int, long_int>(x, x));
    return x;
}

void output(long_int x) {
    M.clear();
    printf("%llu\n", cal(x));
}

int main() {
    while(~scanf("%llu", &N)) {
        output(N);
    }
    return 0;
}

